import { TestAlgorithms } from '../algorithms/test';

/**
 * 测试算法服务
 * 提供测试计算功能
 */
export class TestService {
  /**
   * 测试1计算
   * @param params 计算参数
   * @returns 计算结果
   */
  static async calculateTest1(params: any) {
    try {
      const { testValue1 } = params;
      
      // 执行计算，直接转换为数字
      const result = TestAlgorithms.test1Calculation(testValue1);
      
      return {
        success: true,
        data: result
      };
    } catch (error: any) {
      return {
        success: false,
        error: error.message || '计算失败'
      };
    }
  }
  
  /**
   * 测试2计算（动态输入计算）
   * 对输入数组求和并乘以3
   * @param params 计算参数，包含输入项数组和乘数因子
   * @returns 计算结果
   */
  static async calculateTest2(params: any) {
    try {
      const { inputs, multiplier } = params;
      
      // 验证参数
      if (!Array.isArray(inputs)) {
        throw new Error('输入项必须是数组格式');
      }
      
      if (typeof multiplier !== 'number') {
        throw new Error('乘数因子必须是数字');
      }
      
      // 执行动态输入计算
      const result = TestAlgorithms.test2Calculation(inputs, multiplier);
      
      return {
        success: true,
        data: result
      };
    } catch (error: any) {
      return {
        success: false,
        error: error.message || '动态输入计算失败'
      };
    }
  }
}